ci: Move remaining Node 20 actions to their Node 24 releases - #2813
Merged
Conversation
GitHub is retiring the Node 20 action runtime, and several actions we pin still shipped `runs.using: node20`. - `actions/upload-artifact` v5 -> v6 - `actions/download-artifact` v6 -> v7 - `actions/cache` and `actions/cache/restore` v4 -> v5 - `actions/checkout` v3 -> v6 in `update-citation-cff`, matching every other workflow - `nick-fields/retry` v3.0.2 -> v4.0.0 These are the first Node 24 majors of each action; the inputs we pass are unchanged in all of them. `thollander/actions-comment-pull-request` still has no Node 24 release, so `commit-suggest` keeps its current pin. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nq9PwEbCX7HT4MqPNUn74X
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GitHub is retiring the Node 20 action runtime,
so every action we pin needs a release that declares
runs.using: node24.Version numbers are a poor proxy for that,
so the runtime of each pinned action was read from its upstream
action.yml.That turned up the main surprise:
actions/upload-artifact@v5andactions/download-artifact@v6,which this repository had already adopted,
are still Node 20 actions.
Their first Node 24 majors are v6 and v7.
Changes
actions/upload-artifactrevdep2,revdep,R-CMD-check,check,commit,covractions/download-artifactrevdep2,commit-suggestactions/cache,actions/cache/restorerevdep2actions/checkoutupdate-citation-cffnick-fields/retrypkgdown-deployEach action moves to the first Node 24 major rather than the newest tag.
upload-artifact@v7changes upload semantics(
archive: false, artifact name taken from the uploaded filename),and
download-artifact@v8turns digest mismatches into hard errorsand stops unzipping based on the
Content-Typeheader.Neither buys anything here.
The
update-citation-cffcheckout moves to v6to match every other workflow in the repository.
Not changed
thollander/actions-comment-pull-requestincommit-suggestis Node 20,and has no Node 24 release yet — even
mainstill declaresnode20—so its pin stays as is.
Everything else already runs on Node 24 or is a composite or Docker action:
actions/checkout@v6,codecov/codecov-action,step-security/harden-runner,hendrikmuhs/ccache-action,peter-evans/create-pull-request,krlmlr/lock-threads,posit-dev/setup-air,and all
r-lib/actionsandr-hub/actionssteps.Test plan
Every input the workflows pass was checked against the new versions:
overwrite,retention-days,if-no-files-found,compression-levelfor
upload-artifact;pattern,run-id,github-token,merge-multiplefordownload-artifact;restore-keysforcache;and
timeout_minutes,max_attempts,commandforretry.All are still supported, so no call sites needed adjusting.
CI exercises the artifact, cache, and checkout paths on this PR;
the
revdep2sharding path needs a manualworkflow_dispatchrun.LLM disclosure: prepared with Claude Code.
https://claude.ai/code/session_01Nq9PwEbCX7HT4MqPNUn74X